In a cellular communication system, a geographical region is divided into a number of cells, each of which is served by base stations, sometimes referred to as Node-Bs. The base stations are interconnected by a fixed network that is able to transfer data between respective base stations. A mobile station, sometimes referred to as user equipment (UE), is served via a radio communication link from the base station of the cell within which the mobile station is situated.
A typical cellular communication system extends coverage over an entire country and comprises hundreds or even thousands of cells supporting thousands or even millions of mobile stations. Communication from a mobile station to a base station is known as the uplink (UL), and communication from a base station to a mobile station is known as the downlink (DL).
The fixed network interconnecting the base stations is operable to route data between any two base stations, The fixed network interconnecting the base stations is operable to route data between any two base stations, thereby enabling a mobile station in a cell to communicate with a mobile station in any other cell. In addition, the fixed network comprises gateway functions for interconnecting to external networks such as the Internet or the Public Switched Telephone Network (PSTN), thereby allowing mobile stations to communicate with landline telephones and other communication terminals connected by a landline. Furthermore, the fixed network comprises much of the functionality required for managing a conventional cellular communication network including functionality for routing data, admission control, resource allocation, subscriber billing, mobile station authentication etc.
Currently, the most ubiquitous cellular communication system is the 2nd generation communication system known as the Global System for Mobile communication (GSM). GSM uses a technology known as Time Division Multiple Access (TDMA) wherein user separation is achieved by dividing frequency carriers into 8 discrete time slots, which individually can be allocated to a user. Further description of the GSM TDMA communication system can be found in ‘The GSM System for Mobile Communications’ by Michel Mouly and Marie Bernadette Pautet, Bay Foreign Language Books, 1992, ISBN 2950719007.
Currently, 3rd generation systems are being rolled out to further enhance the communication services provided to mobile users. The most widely adopted 3rd generation communication systems are based on Code Division Multiple Access (CDMA) technology. Both Frequency Division Duplex (FDD) and Time Division Duplex (TDD) techniques employ this CDMA technology. In CDMA systems, user separation is obtained by allocating different spreading and scrambling codes to different users on the same carrier frequency and in the same time intervals. In TDD, additional user separation is achieved by assigning different time slots to different users similarly to TDMA. However, in contrast to TDMA, TDD provides for the same carrier frequency to be used for both uplink and downlink transmissions. An example of a communication system using this principle is the Universal Mobile Telecommunication System (UMTS). Further description of CDMA and specifically of the Wideband CDMA (WCDMA) mode of UMTS can be found in ‘WCDMA for UMTS’, Harri Holma (editor), Antti Toskala (Editor), Wiley & Sons, 2001, ISBN 0471486876.
In a 3rd generation cellular communication system, the communication network comprises a core network and a Radio Access Network (RAN). The core network is operable to route data from one part of the RAN to another, as well as interfacing with other communication systems. In addition, it performs many of the operation and management functions of a cellular communication system, such as billing. The RAN is operable to support wireless user equipment over a radio link of the air interface. The RAN comprises the base stations, which in UMTS are known as Node Bs, as well as Radio Network Controllers (RNC) that control the base stations and the communication over the air interface.
The RNC performs many of the control functions related to the air interface including radio resource management and routing of data to and from appropriate base stations. It further provides the interface between the RAN and the core network. An RNC and associated base stations are known as a Radio Network Subsystem (RNS).
3rd generation cellular communication systems have been specified to provide a large number of different services including efficient packet data services. For example, downlink packet data services are supported within the 3GPP release 5 specifications in the form of the High Speed Downlink Packet Access (HSDPA) service. A High Speed Uplink Packet Access (HSUPA) feature is also in the process of being standardised. This uplink packet access feature will adopt many of the features of HSDPA.
In accordance with the 3GPP specifications, the HSDPA service may be used in both Frequency Division Duplex (FDD) mode and Time Division Duplex (TDD) mode.
In HSDPA, transmission code resources are shared amongst users according to their traffic needs. The base station or ‘Node-B’ is responsible for allocating and distributing the resources to the users, within a so-called scheduling task. Hence, for HSDPA, some scheduling is performed by the RNC, whereas other scheduling may be performed by the base station. Specifically, the RNC allocates a set of resources to each base station, which the base station can use exclusively for high-speed packet services. The RNC furthermore controls the flow of data to and from the base stations.
Therefore, most packet-based systems contain schedulers that control when the individual data packets are transmitted, in order to share the available resource, whether time-slots in a time division multiple access (TDMA) communication system or power and codes in a code division multiple access (CDMA) communication system. An introduction to schedulers can be found in ‘Service discipline for guaranteed performance service in packet-switching networks’, authored by Hui Zhang, and published in the Proceedings of the IEEE, volume 83, no. 10, October 1995.
Referring now to FIG. 1, an example of UL data transfer 100, in a ‘request and allocate’ system, is illustrated. The data transfer is performed between a UE 105 and a network 110. The key attribute for schedulers operating in such systems is that the allocation of the shared resources in the uplink is based on a ‘request and allocate’ principle. Specifically, when the UE 105 determines that it has new data arriving in its buffers to be transmitted, in step 115, the UE 105 transmits a request message 120 for resources from the network in a specific message. This specific message usually contains an indication of the volume of data in the UE's buffers that is to be transmitted. When the network receives this message in step 125, the request is then passed to the scheduler and subsequently uplink (UL) resources are allocated to the UE, in step 130. This allocation is signalled in a separate allocation message, as shown in step 135. When the UE receives this message in step 140, the UE may send the UL data on the specified air interface resource(s), and the consequent data transfer is shown in step 145.
A similar, though simpler, procedure occurs in the downlink (DL) direction. Of course no message needs to be sent over the air interface to tell the scheduler the state of the DL buffers at the network end of the system. This means that allocation in the DL is subject to much lower latency than in the UL.
Transport communication protocol (TCP) is a protocol in the well-known TCP/IP (Internet Protocol) suite of communication protocols (see [RFC 793] for a full description of the TCP protocol). TCP provides a connection-orientated, reliable, byte stream service. The reliability is maintained by the use of acknowledgement messages (ACKs) that are sent by the receiver back to the transmitter, in response to a received segment. In this manner, lost or corrupted data segments may be indicated to the transmitter, and these lost or corrupted data segments may be re-sent.
However, in TCP the receiver does not immediately send an acknowledgment for every received segment. A functionality termed ‘delayed ACK’ is employed (see [RFC 813]). When a data segment is received, a delay timer is started and an ACK data segment is sent in response to one of the following conditions:                a) The delay timer expires.        b) New Data is returned to the original transmitter of the segment (i.e. in interactive style applications, such as ‘rlogin’) and this new data can be ‘piggybacked’ with an ACK message.        c) More segments are received from the transmitter.        
In the case of bulk data transfer it is condition-(c) that is the most likely, as the transmitter is, ideally, continuously sending new segments.
Typically only one more segment is required for an ACK to be sent. The following quote is from [RFC 1122]:                ‘When used, a TCP receiver MUST NOT excessively delay acknowledgments. Specifically, an ACK SHOULD be generated for at least every second full-sized segment, and MUST be generated within 500 msec. of the arrival of the first unacknowledged packet.’        
Most current TCP stacks implement the delayed ACK functionality so that an ACK is generated when a single TCP segment is received, whilst the delay timer is running (i.e. an ‘ACK’ is transmitted for ‘every second full-sized data segment’ received, since the reception of a single TCP segment is enough to start the timer in the first place). Also the delay timer is typically set to 200 msec.
The delayed ACK feature is shown diagrammatically in FIG. 2, with a TCP segment 215 transmitted between a transmitter 210 and a receiver 205 (note that the typical configuration in wireless systems will be that the network is the transmitter and the UE is the receiver) Here, the TCP segment 215 is received at the receiver 205. However, the receiver 205 does not transmit an ACK message immediately, and waits until the delay timer has expired, as no data arrives that can be piggy-backed onto the data that is to be sent to the transmitter 210 in addition to no other subsequent TCP segments are received from the transmitter 210. After the delay timer expires, after a period 225, the receiver 205 transmits a stand-alone ACK segment 230.
Thereafter, in the second case, two full-sized TCP segments 235 are transmit by the transmitter 210. The two full-sized TCP segments 235 are received at the receiver 205. The receiver 205 does not immediately transmit an ACK to the transmitter 210, after receipt of the first of the two full-sized TCP segments 235. However, after receipt of the second of the two full-sized TCP segments 235, the receiver 205 immediately transmits an ACK in step 240. For completeness, it is noteworthy that FIG. 2 shows a typical case of ‘slow start’ in TCP.
In the case of bulk TCP data transfer the delayed ACK feature leads to an ACK being transmitted every other segment.
When TCP is used (for bulk data transfer) in ‘request and allocate’ wireless communication systems (i.e. one using the shared channel concept), a message flow between a UE 305 and the network 310 occurs, similar to the data flow illustrated in FIG. 3. Here, at least one full-sized TCP segment arrives at a network's DL buffer, in step 315. The network 310 transmits a message to the UE 305 to allocate DL resources, as shown in step 320. This message is followed by the TCP data transfer, as shown in step 325. The at least one full-sized TCP segment is received by the UE 305, in step 330, which passes the at least one full-sized TCP segment to its TCP memory stack.
The UE 305 then transmits a message to the network 310, requesting UL resources to transmit an ACK message, as shown in step 340. In response thereto, the network 310 transmits a message to the UE 305 allocating UL resources, as shown in step 345. Thereafter, the UE 305 is able to implement the data transfer in step 355, which includes an ‘ACK’ message. Notably, a significant latency 350 exists with this request for an allocated resource.
Thus, there exists a need to provide an improved mechanism to provide bulk IP data transfer flow.